import { Message } from "element-ui";
import router from "@/router/router";
//获取 axios
import axios from "axios";
//实例化axios对象
var service =axios.create({
    baseURL:process.env.VUE_APP_BASE_API,
    timeout: 5000*36
})

//设置响应器
service.interceptors.request.use(
    (config)=>{
       
   console.log('service.interceptors.request');
   config.headers['Authorization']=localStorage.getItem('token')
   return config
    },(error)=>{
    return Promise.reject(error)
    }
)

let showMessage = true; // 标记是否已经显示消息

// 设置拦截器
service.interceptors.response.use(
  (res) => {
    if (res.data.message === '您的登录信息已过期，请重新登录！') {
      if (showMessage) {
        Message.error('请先登录后再操作！');
        showMessage = false; // 标记已经显示消息
      }
      router.push('/login');
      localStorage.clear();
      return Promise.reject(res);
    } else {
      return res;
    }
  },
  (error) => {
    if (error.response) {
      // 处理浏览器请求失败的错误
      if (error.response.status === 404) {
        if (showMessage) {
          Message.error('请求的资源不存在');
          showMessage = false; // 标记已经显示消息
        }
      } else if (error.response.status === 403) {
        if (showMessage) {
          Message.error('没有权限访问该资源');
          showMessage = false; // 标记已经显示消息
        }
      } else {
        if (showMessage) {
          Message.error('请求发生错误');
          showMessage = false; // 标记已经显示消息
        }
      }
    } else if (error.request) {
      // 处理请求发送失败的错误
      if (showMessage) {
        Message.error('请求发送失败');
        showMessage = false; // 标记已经显示消息
      }
    } else {
      // 其他错误处理
      if (showMessage) {
        Message.error('请求发生错误');
        showMessage = false; // 标记已经显示消息
      }
    }
    return Promise.reject(error);
  }
);

export default service;